package ipt.pru.tema5;

import java.util.Scanner;

/**
 * Ejercicio CALCULADORA
 * @author alumno5
 * @author alumno6
 * @author alumno7
 * @author alumno8
 * @version 1.1
 */

public class CalculadoraF2 {

	static double num1;
	static double num2;
	static double resultado;
	
	/**
	 * Comprobacion de que el contenido metido por teclado corresponde a un double
	 * @param stringNumero
	 * @return boolean
	 */
	
	
	public static boolean checkNumber(String stringNumero){
		double num;
		
		try{
			num = Double.parseDouble(stringNumero);
		}
		catch (Exception e){
			System.out.println("Los caracteres introducidos no son validos\n");
			return false;
		}
		
		return true;
	}
	
	
	/**
	 * Dada una operacion y dos numeros realiza el calculo, con '#' para salir. 
	 * @param args
	 */
	
	public static void main(String[] args) {
		String operacion = "";
		String numero;
		Scanner sc=new Scanner(System.in);
		System.out.println();
		System.out.println("\t\t*********************");
		System.out.println("\t\t**** CALCULADORA ****");
		System.out.println("\t\t*********************\n\n");
		
		
		do{
			System.out.println("Que operacion desea realizar (+,-,*,/,%), # para salir");
			sc=new Scanner(System.in);
			operacion = sc.nextLine();
			if ("#".equalsIgnoreCase(operacion) || "+".equalsIgnoreCase(operacion) ||
				"-".equalsIgnoreCase(operacion) || "*".equalsIgnoreCase(operacion) ||
				"/".equalsIgnoreCase(operacion) || "%".equalsIgnoreCase(operacion)){
				
				if (!"#".equalsIgnoreCase(operacion)){
					
					System.out.println("Introduzca primer valor");
					numero = sc.nextLine();
					numero = numero.replace(',', '.');
					while (!checkNumber(numero)){
						System.out.println("Introduzca de nuevo el primer valor");
						numero = sc.nextLine();
					}
					num1 = Double.parseDouble(numero);
					
					System.out.println("Introduzca segundo valor");
					numero = sc.nextLine();
					while (!checkNumber(numero)){
						System.out.println("Introduzca de nuevo el segundo valor");
						numero = sc.nextLine();
					}
					num2 = Double.parseDouble(numero);
					
					if ("+".equalsIgnoreCase(operacion)){
						resultado = num1 + num2;
						System.out.println("El resultado de " + num1 + " " + operacion + " " + num2 + " = " + resultado);
					}else if("-".equalsIgnoreCase(operacion)){
						resultado = num1 - num2;
						System.out.println("El resultado de " + num1 + " " + operacion + " " + num2 + " = " + resultado);
					}else if("*".equalsIgnoreCase(operacion)){
						resultado = num1 * num2;
						System.out.println("El resultado de " + num1 + " " + operacion + " " + num2 + " = " + resultado);
					}else if("/".equalsIgnoreCase(operacion)){
						if (num2 == 0){
							System.out.println("Estas dividiendo entre 0 \n\n");
						}else{
							resultado = num1 / num2;
							System.out.println("El resultado de " + num1 + " " + operacion + " " + num2 + " = " + resultado);
						}
					}else if("%".equalsIgnoreCase(operacion)){
						if (num2 == 0){
							System.out.println("Estas dividiendo entre 0 \n\n");
						}else{
							resultado = num1 % num2;
							System.out.println("El resultado de " + num1 + " " + operacion + " " + num2 + " = " + resultado);
						}
					}
					System.out.println("----------------------------------------------------------\n");
				}else{
					System.out.println("Saliendo...");
				}
			
			}else{
				System.out.println("El caracter introducido no es valido");
				System.out.println("----------------------------------------------------------\n");
			}
			
				
			
		}while(! "#".equalsIgnoreCase(operacion));

	}

}
